//
//  NSDate+ZLCategory.h
//  ZLCategory
//
//  Created by zhaozl on 2022/3/7.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface NSDate (ZLCategory)

/// 将字符串转成日期对象
/// @param dateString 字符串类型日期
/// @param format 日期格式
+ (NSDate *)zl_dateWithString:(NSString *)dateString format:(NSString *)format;

/// 判断日期是周 1（一）,2（二）,3（三）,4（四）,5（五）,6（六）,7(日)
- (NSInteger)zl_weekdayString;

/// 将当前时间转成字符串
/// @param format 当前日期格式
- (NSString *)zl_stringWithFormat:(NSString *)format;

/// 年月日格式
- (NSString *)zl_stringYYYMMDD;

/// 时间偏移
/// @param second 秒
- (NSDate *)zl_offsetSecond:(int)second;

/// 时间偏移
/// @param minute 分
- (NSDate *)zl_offsetMinute:(int)minute;

/// 时间偏移
/// @param hour 时
- (NSDate *)zl_offsetHour:(int)hour;

/// 时间偏移
/// @param day 天
- (NSDate *)zl_offsetDay:(int)day;

/// 年
- (NSInteger)zl_year;

/// 月
- (NSInteger)zl_month;

/// 周
- (NSInteger)zl_week;

/// 日
- (NSInteger)zl_day;

/// 时
- (NSInteger)zl_hour;

/// 分
- (NSInteger)zl_minute;

/// 秒
- (NSInteger)zl_second;

/// 时间戳
- (long)zl_timestamp;

/// 时间差（年）
- (NSInteger)zl_differYears:(NSDate *)date;

/// 时间差（月）
- (NSInteger)zl_differMonths:(NSDate *)date;

/// 时间差（日）
- (NSInteger)zl_differDays:(NSDate *)date;

/// 时间差（时）
- (NSInteger)zl_differHours:(NSDate *)date;

/// 时间差（分）
- (NSInteger)zl_differMinutes:(NSDate *)date;

/// 时间差（秒）
- (NSInteger)zl_differSeconds:(NSDate *)date;

/// 自定义计算时差
/// - Parameters:
///   - date: 时间
///   - unit: 单位
- (NSDateComponents *)zl_differ:(NSDate *)date unit:(NSCalendarUnit)unit;

/// 格式化时间戳到当前日期的几点几分
- (long)zl_timestamp:(NSInteger)hour andMinute:(NSInteger)minute;

@end

NS_ASSUME_NONNULL_END
